package org.example.aienglishapp.properties;

import lombok.Getter;
import lombok.Setter;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

/**
 * 阿里云短信服务配置属性类。
 *
 * 该类用于加载并保存与阿里云短信服务相关的配置参数，
 * 这些参数通常定义在应用程序的配置文件中（如 application.yml 或 application.properties）。
 * 使用 {@link ConfigurationProperties} 注解将配置文件中的属性绑定到此类的字段上。
 *
 * @author xlj
 * @since 2024-10-1
 * @version 1.0
 */
@Getter
@Setter
@Component
@ConfigurationProperties(prefix = "aliyun.sms")
public class AliyunSmsProperties {

    /**
     * 阿里云访问密钥 ID (AccessKeyId)。
     * 用于身份验证，标识 API 请求的发送者。
     */
    private String accessKeyId;

    /**
     * 阿里云账户访问密钥 (AccessKeySecret)。
     * 与 AccessKeyId 一起用于进行 HMAC-SHA1 签名，确保请求的完整性和真实性。
     */
    private String accessKeySecret;

    /**
     * 短信签名名称。
     * 发送短信时使用的签名，需要在阿里云控制台申请并通过审核。
     */
    private String signName;

    /**
     * 短信模板代码。
     * 发送短信时使用的模板代码，模板内容需要提前在阿里云控制台创建并通过审核。
     */
    private String templateCode;
}